Data transfer operations have traditionally made use of fixed, predetermined values for read block sizes that are specified, for example, by the underlying operating system or application performing the data transfer operation. Unfortunately, a single default setting is unlikely to be an optimal value in all environments.